bubblesort的时间复杂度

//#include<stdio.h>
//int main()
//{
//      printf("%s\n%d\n%s\n%s", __FILE__, __LINE__, __DATE__,__TIME__);
//      return 0;
//}
#define N 10
#include<stdio.h>
void BubbleSort(int* a, int n) {
        assert(a);
        for (size_t end = n; end > 0; --end)
        {
               int exchange = 0;
               for (size_t i = 1; i < end; ++i)
               {
                       if (a[i - 1] > a[i])
                       {
                              Swap(&a[i - 1], &a[i]);
                              exchange = 1;
                       }
               }
               if (exchange == 0)
                       break;
        }
}
int main()
{
        int arr[N] = { 9,8,7,6,5,4,3,2,1,0 };
        int n = sizeof(arr) / sizeof(arr[0]);
        BubbleSort(arr, n);
        //时间复杂度采用最坏情况进行计算，即每次都要进行交换，第一次交换n-1次，第二次交换n-2次，最后一次交换1次
        //则总的交换次数就是(1+n-1)(n-1)/2=n^2/2-n/2,只取最高项，去系数，则采用大o的渐进表示法，其时间复杂度为O(n^2)
        return 0;
}
